package service

import (
	"context"
	"time"

	"gitee.com/war2001/NiuMaEasyGo/global"
	"gitee.com/war2001/NiuMaEasyGo/model"
)

// ExampleService 示例服务
type ExampleService struct{}

// NewExampleService 创建示例服务
func NewExampleService() *ExampleService {
	return &ExampleService{}
}

// GetDataWithGlobalDB 使用全局数据库变量的示例方法
func (s *ExampleService) GetDataWithGlobalDB(id uint) (*model.WechatConfig, error) {
	var data model.WechatConfig

	// 使用全局DB变量
	if err := global.DB.First(&data, id).Error; err != nil {
		return nil, err
	}

	return &data, nil
}

// CacheDataWithGlobalRedis 使用全局Redis变量的示例方法
func (s *ExampleService) CacheDataWithGlobalRedis(key string, value string) error {
	// 使用全局Redis变量
	ctx := context.Background()
	return global.Redis.Set(ctx, key, value, 30*time.Minute).Err()
}

// GetCachedDataWithGlobalRedis 使用全局Redis变量获取缓存的示例方法
func (s *ExampleService) GetCachedDataWithGlobalRedis(key string) (string, error) {
	// 使用全局Redis变量
	ctx := context.Background()
	return global.Redis.Get(ctx, key).Result()
}
